    protected void butCompare_Click(object sender, EventArgs e)
    {
        DataTable l_dtTemp = new DataTable();
        DataTable l_dtTemp1 = new DataTable();
        DataTable l_tblOutput = new DataTable();
        string l_StructureId = string.Empty;
        string l_VCNo = string.Empty;
        string l_CHNo = string.Empty;
        for (int i = 0; i < grdCompareVariant.Rows.Count; i++)
        {
            CheckBox chkCartSelect = ((CheckBox)grdCompareVariant.Rows[i].Items.FindItemByKey("Check").FindControl("chkCartSelect"));
            if (chkCartSelect.Checked == true)
            {
                l_StructureId = grdCompareVariant.Rows[i].Items.FindItemByKey("StructureId").Value.ToString();
                l_VCNo = grdCompareVariant.Rows[i].Items.FindItemByKey("VCName").Value.ToString();
                l_CHNo = grdCompareVariant.Rows[i].Items.FindItemByKey("Chassis").Value.ToString();
                g_strStructureId = g_strStructureId + "~" + l_StructureId;
                g_VCNo = g_VCNo + "~" + l_VCNo;
                g_CHNo = g_CHNo + "~" + l_CHNo;
            }
        }
        g_strStructureId = g_strStructureId.Substring(1);
        string[] l_StuID = g_strStructureId.Split(',');
        for (int i = 0; i < l_StuID.Length; i++)
        {
            WISData l_clsData = new WISData();
            DataSet l_dsResult = new DataSet();
            l_dsResult.Clear();
            l_dsResult = l_clsData.Compare_Result(l_StuID[i]);
            if (i == 0)
            {
                l_dtTemp = l_dsResult.Tables[0];
            }
            else if(i==1)
            {
                l_dtTemp1 = l_dsResult.Tables[0];
            }
           
          
        }
        CompareData(l_dtTemp, l_dtTemp1,l_tblOutput);
        
    }
    private DataTable CompareData(DataTable tblData1, DataTable tblData2, DataTable tblOutput)
    {
        try
        {
            tblOutput.Columns.Add(new DataColumn("cPartNumber", typeof(string)));
            tblOutput.Columns.Add(new DataColumn("cPartName", typeof(string)));
            tblOutput.Columns.Add(new DataColumn("Qty", typeof(int)));
            tblOutput.Columns.Add(new DataColumn("Qty1", typeof(int)));
           
            foreach (DataRow l_dtTemp1 in tblData2.Rows)
            {
                string l_cPartNumber2 = l_dtTemp1["cPartNumber"].ToString();
                string l_cPartName2 = l_dtTemp1["cPartName"].ToString();
                int l_Qty2 = Convert.ToInt16(l_dtTemp1["Qty"].ToString());
                int count=0;
                count = count++;
                Dictionary<int, string> PartNumbers = new Dictionary<int, string>();
                PartNumbers.Add(count, "l_cPartNumber2");
                foreach (DataRow l_dtTemp in tblData1.Rows)
                {
                    string l_cPartNumber1 = l_dtTemp["cPartNumber"].ToString();
                    string l_cPartName1 = l_dtTemp["cPartName"].ToString();
                    int l_Qty1 = Convert.ToInt16(l_dtTemp["Qty"].ToString());

                    if (l_cPartNumber2 == l_cPartNumber1)
                    {
                        tblOutput.Rows.Add(l_cPartNumber2, l_cPartName2, l_Qty2,l_Qty1);
                       
                    }
                    else
                    {
                    }
                }
            }
            
            grdCompareResult.ClearDataSource();
            RemoveDuplicateRows(tblOutput, "cPartNumber");
            grdCompareResult.Visible = true;
            grdCompareResult.DataSource = tblOutput;
            grdCompareResult.DataBind();
        }
        catch
        {
            return null;
        }

        return tblOutput;
    }
    public DataTable RemoveDuplicateRows(DataTable dTable, string colName)
    {
        Hashtable hTable = new Hashtable();
        ArrayList duplicateList = new ArrayList();
        foreach (DataRow drow in dTable.Rows)
        {
            if (hTable.Contains(drow[colName]))
                duplicateList.Add(drow);
            else
                hTable.Add(drow[colName], string.Empty);
        }

        foreach (DataRow dRow in duplicateList)
            dTable.Rows.Remove(dRow);

        return dTable;
    } 
 